using BiologicalResearch.Models;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace BiologicalResearch.Interfaces
{
    public interface IAgentService
    {
        // Agent Management
        Task<ResearchAgent> CreateAgentAsync(string specialization);
        Task<ResearchAgent> GetAgentAsync(string agentId);
        Task UpdateAgentAsync(ResearchAgent agent);
        
        // Experiment Management
        Task<Experiment> StartExperimentAsync(string agentId, string topic);
        Task CompleteExperimentAsync(int experimentId);
        
        // Research Functions
        Task<ResearchFinding> RecordFindingAsync(
            string agentId, 
            int experimentId, 
            string content, 
            int significance);
            
        // Multi-agent Collaboration
        Task<List<ResearchFinding>> CollaborateAsync(
            List<string> agentIds, 
            string researchTopic);
    }
}